package com.bflow.dao;

import com.bflow.commons.bean.QueryParam;
import com.bflow.commons.dao.IBaseDao;
import com.bflow.dao.po.BflowRunTaskPo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 功能：BflowRunTask 任务-Dao接口
 * 作者：haowen
 * 日期：2018-12-13
 */
@Mapper
@Repository("bflowRunTaskDao")
public interface BflowRunTaskDao extends IBaseDao<BflowRunTaskPo> {

    /**
     * 根据instanceId改变状态
     * @param instanceId
     * @param delFlag
     */
    void cancelTask(@Param("instanceId") String instanceId,@Param("delFlag") int delFlag, @Param("updateTime") Date updateTime);

    /**
     * 根据流程key 查询用户待办列表
     * @param userId
     * @param procKey
     * @return
     */

    List<BflowRunTaskPo> getWaitDisposeTaskList(@Param("userId")String userId, @Param("procKey")String procKey,@Param("atcId") String atcId,@Param("userKey") String userKey);

    /**
     * 根据流程key 查询用户待办列表记录数
     * @param userId
     * @param procKey
     * @return
     */

    Long countWaitDisposeTask(@Param("userId")String userId, @Param("procKey")String procKey,@Param("atcId") String atcId);

    /**
     * 根据queryParam条件查询总页数
     * @param queryParam 查询条件
     * @return
     */
    long findTaskInstancePageCount(QueryParam queryParam);

    /**
     * 根据queryParam条件查询分页数据
     * @param queryParam 查询条件
     * @return
     */
    List<BflowRunTaskPo> findTaskInstancePage(QueryParam queryParam);
}


